import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;
import java.util.Map;
import java.util.Vector;

public class Test extends Thread {
	
	private String defaultContentEncoding; 
	
	public Test(){
		defaultContentEncoding = "GBK";
	}
	
	
	
	@Override
	public void run() {
		System.out.println("mobile interface monitor start:"+new Date().toString());
		while(true){
			//个人版
			try {
				HttpRespons response = sendGet("http://w.51auto.com:8999/2car/v1.3/androidService/androidServlet?info=eyJoZWFkZXIiOnsibWVzc2FnZUNvZGUiOiIiLCJzZXJ2aWNlIjozMDAxLCJlcnJvciI6IiIsIm1lc3NhZ2VJZCI6MCwibW9kZWwiOjAsImRhdGFTaXplIjowfSwiYm9keSI6eyJ5ZWFyIjoiIiwiYnJhbmQiOiLlpaXov6oiLCJhZ2UiOiIiLCJwcm92aW5jZSI6IlNIIiwiZGlzcGxhY2VtZW50IjoiIiwidHJhbnNtaXNzaW9uIjoiIiwiYXNjIjotMSwiem9uZSI6IjIiLCJmaWxlIjoiIiwibWFrZSI6IkFVREYiLCJwcmljZSI6IiIsIm1pbGVhZ2UiOiIiLCJmYW1pbHkiOiJBNEwiLCJ2Y1R5cGUiOiIiLCJzaG93VHlwZSI6OSwic29yZSI6LTEsInBhZ2VzaXplIjoxMCwicGFnZSI6MX19");
				System.out.println(1+" "+response.getContent());
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			//经销商版
			try {
				HttpRespons response = sendGet("http://w.51auto.com:6666/2car/v1.3/androidBusinessService?info=eydib2R5JzpbXSwnaGVhZGVyJzp7J2NyZWF0ZVRpbWUnOicyMDEyLTE2LTA1JywnZGF0YVNpemUnOjIsJ21lc3NhZ2VDb2RlJzonJywnbWVzc2FnZUlkJzoxMjMsJ21vZGVsJzowLCdzZXJ2aWNlJzo3MDA1fX0=");
				System.out.println(2+" "+response.getContent());
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			//ipad
			try {
				HttpRespons response = sendGet("http://w.51auto.com:6666/2car/v1.3/ipadService?info=eydib2R5Jzp7J3V1VXNlcklkJzonNzA0M2VmNTQ5ZjQyNDY4Mjg2OGJmYjgwMmRlODBhOTAnLCd2ZXJzaW9uJzonMS4wJywndHlwZSc6J2lwYWQnfSwnaGVhZGVyJzp7J2RhdGFTaXplJzowLCdtZXNzYWdlSWQnOjAsJ21vZGVsJzowLCdzZXJ2aWNlJzo1MDAxfX0=");
				System.out.println(3+" "+response.getContent());
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			//webapp
			try {
				HttpRespons response = sendGet("http://w.51auto.com:8999/2car/v1.3/webAppService?info=eydib2R5Jzp7J3RpZCc6JzE3JywncGFnZSc6JzEnLCdwYWdlc2l6ZSc6JzMnLCd0YWdJZCc6JzQnfSwnaGVhZGVyJzp7J2NyZWF0ZVRpbWUnOicyMDEyLTE2LTA1JywnZGF0YVNpemUnOjIsJ21lc3NhZ2VDb2RlJzonJywnbWVzc2FnZUlkJzoxMjMsJ21vZGVsJzowLCdzZXJ2aWNlJzo2MDA3fX0=");
				System.out.println(4+" "+response.getContent());
			} catch (IOException e1) {
				e1.printStackTrace();
			}
			System.out.println("mobile interface moniting:"+new Date().toString());
			try {
				Thread.currentThread().sleep(1000*60*1);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}

	public static void main(String[] args) {
		Thread t = new Test();
		t.start();
	}
	
	 /** 
     * 发送GET请求 
     *  
     * @param urlString 
     *            URL地址 
     * @return 响应对象 
     * @throws IOException 
     */  
    public HttpRespons sendGet(String urlString) throws IOException {  
        return this.send(urlString, "GET", null, null);  
    }  
    
	
	/** 
     * 发送HTTP请求 
     *  
     * @param urlString 
     * @return 响映对象 
     * @throws IOException 
     */  
    private HttpRespons send(String urlString, String method,  
            Map<String, String> parameters, Map<String, String> propertys)  
            throws IOException {  
        HttpURLConnection urlConnection = null;  
   
        if (method.equalsIgnoreCase("GET") && parameters != null) {  
            StringBuffer param = new StringBuffer();  
            int i = 0;  
            for (String key : parameters.keySet()) {  
                if (i == 0)  
                    param.append("?");  
                else  
                    param.append("&");  
                param.append(key).append("=").append(parameters.get(key));  
                i++;  
            }  
            urlString += param;  
        }  
        URL url = new URL(urlString);  
        urlConnection = (HttpURLConnection) url.openConnection();  
   
        urlConnection.setRequestMethod(method);  
        urlConnection.setDoOutput(true);  
        urlConnection.setDoInput(true);  
        urlConnection.setUseCaches(false);  
   
        if (propertys != null)  
            for (String key : propertys.keySet()) {  
                urlConnection.addRequestProperty(key, propertys.get(key));  
            }  
   
        if (method.equalsIgnoreCase("POST") && parameters != null) {  
            StringBuffer param = new StringBuffer();  
            for (String key : parameters.keySet()) {  
                param.append("&");  
                param.append(key).append("=").append(parameters.get(key));  
            }  
            urlConnection.getOutputStream().write(param.toString().getBytes());  
            urlConnection.getOutputStream().flush();  
            urlConnection.getOutputStream().close();  
        }  
   
        return this.makeContent(urlString, urlConnection);  
    }  
   
    /** 
     * 得到响应对象 
     *  
     * @param urlConnection 
     * @return 响应对象 
     * @throws IOException 
     */  
    private HttpRespons makeContent(String urlString,  
            HttpURLConnection urlConnection) throws IOException {  
        HttpRespons httpResponser = new HttpRespons();  
        try {  
            InputStream in = urlConnection.getInputStream();  
            BufferedReader bufferedReader = new BufferedReader(  
                    new InputStreamReader(in));  
            httpResponser.contentCollection = new Vector<String>();  
            StringBuffer temp = new StringBuffer();  
            String line = bufferedReader.readLine();  
            while (line != null) {  
                httpResponser.contentCollection.add(line);  
                temp.append(line).append("\r\n");  
                line = bufferedReader.readLine();  
            }  
            bufferedReader.close();  
   
            String ecod = urlConnection.getContentEncoding();  
            if (ecod == null)  
                ecod = this.defaultContentEncoding;  
   
            httpResponser.urlString = urlString;  
   
            httpResponser.defaultPort = urlConnection.getURL().getDefaultPort();  
            httpResponser.file = urlConnection.getURL().getFile();  
            httpResponser.host = urlConnection.getURL().getHost();  
            httpResponser.path = urlConnection.getURL().getPath();  
            httpResponser.port = urlConnection.getURL().getPort();  
            httpResponser.protocol = urlConnection.getURL().getProtocol();  
            httpResponser.query = urlConnection.getURL().getQuery();  
            httpResponser.ref = urlConnection.getURL().getRef();  
            httpResponser.userInfo = urlConnection.getURL().getUserInfo();  
   
            httpResponser.content = new String(temp.toString().getBytes(), ecod);  
            httpResponser.contentEncoding = ecod;  
            httpResponser.code = urlConnection.getResponseCode();  
            httpResponser.message = urlConnection.getResponseMessage();  
            httpResponser.contentType = urlConnection.getContentType();  
            httpResponser.method = urlConnection.getRequestMethod();  
            httpResponser.connectTimeout = urlConnection.getConnectTimeout();  
            httpResponser.readTimeout = urlConnection.getReadTimeout();  
   
            return httpResponser;  
        } catch (IOException e) {  
            throw e;  
        } finally {  
            if (urlConnection != null)  
                urlConnection.disconnect();  
        }  
    }  
    
    /** 
     * 默认的响应字符集 
     */  
    public String getDefaultContentEncoding() {  
        return this.defaultContentEncoding;  
    }  
   
    /** 
     * 设置默认的响应字符集 
     */  
    public void setDefaultContentEncoding(String defaultContentEncoding) {  
        this.defaultContentEncoding = defaultContentEncoding;  
    }  
   
}

class HttpRespons {  
	   
    String urlString;  
   
    int defaultPort;  
   
    String file;  
   
    String host;  
   
    String path;  
   
    int port;  
   
    String protocol;  
   
    String query;  
   
    String ref;  
   
    String userInfo;  
   
    String contentEncoding;  
   
    String content;  
   
    String contentType;  
   
    int code;  
   
    String message;  
   
    String method;  
   
    int connectTimeout;  
   
    int readTimeout;  
   
    Vector<String> contentCollection;  
   
    public String getContent() {  
        return content;  
    }  
   
    public String getContentType() {  
        return contentType;  
    }  
   
    public int getCode() {  
        return code;  
    }  
   
    public String getMessage() {  
        return message;  
    }  
   
    public Vector<String> getContentCollection() {  
        return contentCollection;  
    }  
   
    public String getContentEncoding() {  
        return contentEncoding;  
    }  
   
    public String getMethod() {  
        return method;  
    }  
   
    public int getConnectTimeout() {  
        return connectTimeout;  
    }  
   
    public int getReadTimeout() {  
        return readTimeout;  
    }  
   
    public String getUrlString() {  
        return urlString;  
    }  
   
    public int getDefaultPort() {  
        return defaultPort;  
    }  
   
    public String getFile() {  
        return file;  
    }  
   
    public String getHost() {  
        return host;  
    }  
   
    public String getPath() {  
        return path;  
    }  
   
    public int getPort() {  
        return port;  
    }  
   
    public String getProtocol() {  
        return protocol;  
    }  
   
    public String getQuery() {  
        return query;  
    }  
   
    public String getRef() {  
        return ref;  
    }  
   
    public String getUserInfo() {  
        return userInfo;  
    }  
   
}  
